﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Web;
using Framework.Library.Core.Config;
using System.Web.Caching;
using Framework.Library.Core.Provider.Caches;

namespace Framework.Library.Core.Provider.Caches
{
    //public class CacheWeb : ICaching
    //{
    //    private static readonly CacheWeb instance = new CacheWeb();
    //    public static CacheWeb Instance
    //    {
    //        get { return instance; }
    //    }
    //    private static readonly HttpContext context = HttpContext.Current;

    //    public object GetHashCache(string hashKey, string param)
    //    {
    //        var retVal = (Hashtable)context.Cache.Get(hashKey);
    //        if (retVal == null) return null;
    //        if (retVal[param] == null) return null;
    //        return retVal[param];
    //    }

    //    public Hashtable GetHashCache(string hashKey, out string filePath)
    //    {
    //        filePath = string.Empty;
    //        var retVal = (Hashtable)context.Cache.Get(hashKey);
    //        if (retVal == null) return null;
    //        return retVal;
    //    }

    //    public void SetHashCache(string hashKey, string param, object data)
    //    {
    //        SetHashCache(hashKey, param, data, Convert.ToInt32(Configurations.CacheExpire));
    //    }

    //    public void SetHashCache(string hashKey, string param, object data, int expireTime)
    //    {
    //        var retVal = (Hashtable)context.Cache.Get(hashKey);
    //        if (retVal == null)
    //        {
    //            retVal = new Hashtable();
    //            retVal[param] = data;
    //            context.Cache.Insert(hashKey, retVal, null, DateTime.Now.AddHours(expireTime), Cache.NoSlidingExpiration);
    //        }
    //        else
    //        {
    //            if (retVal.ContainsKey(param))
    //                retVal[param] = data;
    //            else
    //                retVal.Add(param, data);
    //        }
    //    }

    //    public void RemoveCache(string hashKey)
    //    {
    //        if (context.Cache[hashKey] != null)
    //            context.Cache.Remove(hashKey);
    //    }

    //    public void RemoveAll()
    //    {
    //        Cache cache = context.Cache;
    //        IEnumerator ienum = cache.GetEnumerator();
    //        while (ienum.MoveNext())
    //        {
    //            var dic = (DictionaryEntry)ienum.Current;
    //            cache.Remove(dic.Key.ToString());
    //        }
    //    }
    //}
}
